package string;
/** String 的演示 */
public class StringDemo {
    public static void main(String[] args) {
        /*
        当用字面量("")来创建字符串对象时，JVM灰检查常量池中是否有该对象
        1)若没有，则会创建字符串对象，并将其引用存入到常量池中
        2)若有，则直接将常量池中的对象返回，并不会创建新的字符串对象


        String s1 = "123abc";//常量池还没有，因此创建该字符串对象，并存入常量池
        String s2 = "123abc";//常量池有，复用
        String s3 = "123abc";//常量池有，复用

        System.out.println(s1 == s2);
        System.out.println(s1 == s3);
        System.out.println(s3 == s2);

        s1 = s1+"!";//创建新的字符串对象("123abc!"),并将地址赋值给s1
        System.out.println(s1 == s2);//false



        String s4 = "123"+"abc";
        System.out.println(s1 == s4);
        String s5 = "123";
        String s6 = s5+"abc";
        System.out.println(s1 == s6);

         */
        String s = new String("hello");
        String s1 = "hello";
        System.out.println(s == s1);//比较地址
        System.out.println(s.equals(s1));//比较内容
    }
}
